//对axios进行二次封装

//引入axios
import axios from "axios"
//引入进度条插件
import NProgress from 'nprogress';
//引入进度条的样式
import 'nprogress/nprogress.css'

//创建axios实例对象
//此时的requests就是axios的实例对象
const requests = axios.create({
    //配置对象
    //默认给每个请求前面加上/api
    baseURL: "/mock",
    //响应超时时间
    timeout: 5000
})

// 添加请求拦截器
requests.interceptors.request.use((config) => {
    // 在发送请求之前做些什么
    //进度条开始动
    NProgress.start()
    return config;
},
    (error) => {
        // 对请求错误做些什么
        return Promise.reject(error);
    });

// 添加响应拦截器
requests.interceptors.response.use((res) => {
    // 对响应数据做点什么
    //进度条结束
    NProgress.done()
    return res.data;
},
    (error) => {
        // 对响应错误做点什么
        return Promise.reject(error);
    });

export default requests